import Serializer=require('./../../../base/Serializer');
import LineStyle=require('./LineStyle');

export = ChartAxisStyle;

/**
 * 坐标轴的属性，例如： 图表的轴线显示\样式\颜色\粗细、标签角度、主网格线显示\样式\颜色\粗细
 * @author 
 *
 */
class ChartAxisStyle extends Serializer {
    /**
     * visible, 是否显示,0不显示，1显示
     */
    public v: number=1;
    
    public label_an=0; // 标签角度 [-180,180]
    
    public axis: LineStyle=new LineStyle(); // 轴线的样式
    
    public axis_assist: LineStyle=new LineStyle();// 主网格线的样式[与坐标轴平行的线]
    
    public constructor(g?) {
        super(g);
    }
    
    // 从json对象(注意不是json字符串)中解析
    // 参数：self,true表示只拷贝自身数据，而不拷贝子的数据
    public fromJson(jsonObj,versionId,self?) {
        super.fromJson(jsonObj,versionId,self);
        
        this.v=jsonObj.v;
        this.label_an=jsonObj.label_an;

        if(jsonObj.axis!=null) {
            this.axis.fromJson(jsonObj.axis,versionId);
        }
        if(jsonObj.axis_assist!=null) {
            this.axis_assist.fromJson(jsonObj.axis_assist,versionId);
        }
    }
    // 转成json字符串
    public toJson(): string {
        // 去掉父json字符串的头尾
        var superJson=super.toJson();
        superJson=superJson.substr(1,superJson.length-2);

        var ret='{';
        ret+=superJson;
        
        // v
        ret+=',';
        ret+='"v":';
        ret+=this.v;   
        
        // label_an
        ret+=',';
        ret+='"label_an":';
        ret+=this.label_an;  
                    
        // axis
        if(this.axis) {
            ret+=',';
            ret+='"axis":';
            ret+=this.axis.toJson();
        }
        // axis_assist
        if(this.axis_assist) {
            ret+=',';
            ret+='"axis_assist":';
            ret+=this.axis_assist.toJson();
        }
        
        ret+='}';
        return ret;
    }
//SJG_MARK_APPEND--------------------
}//SJG_MARK_END-------------------------